var pageType = pageType || "";
var pageId = pageId || "";
var zampda1 = zampda1 || "";
var prodid = prodid || "";
var catName = catName || "";
var totalPrice = totalPrice || "";
var shippingGroups = shippingGroups || [];
if (pageId == "" || pageType == "") {
    var _body = $("body").attr("class") || "", _wurl = window.location.href;
    if (_body.indexOf("home") >= 0) {
        pageType = "homepage";
        pageId = "628"
    } else if (_wurl.indexOf("item") >= 0) {
        pageType = "productPage";
        pageId = "637"
    } else if (_wurl.indexOf("search") >= 0) {
        pageType = "searchPage";
        pageId = "631"
    } else if (_wurl.indexOf("category") >= 0) {
        pageType = "categoryPage";
        pageId = "632"
    } else if (_wurl.indexOf("jiadian") >= 0) {
        pageType = "electronicPage";
        pageId = "633"
    } else if (_wurl.indexOf("fashion") >= 0) {
        pageType = "fashionPage";
        pageId = "634"
    } else if (_wurl.indexOf("market") >= 0) {
        pageType = "marketPage";
        pageId = "635"
    } else if (_wurl.indexOf("enterprise") >= 0) {
        pageType = "enterprisePage";
        pageId = "636"
    } else {
        pageType = "other";
        pageId = "627"
    }
}
var google_tag_params = {ecomm_pagetype: pageType, ecomm_category: catName, ecomm_prodid: prodid, ecomm_totalvalue: totalPrice};
var conversion_value = totalPrice;
dataLayer = [{google_tag_params: window.google_tag_params, conversion_value: window.conversion_value}];
window["ClickiTrackerName"] = "gomeClicki";
window.gomeClicki = window.gomeClicki || function() {
    (window.gomeClicki.queue = window.gomeClicki.queue || []).push(arguments)
};
window.gomeClicki.start = +new Date;
gomeClicki("create", document.location.href.search(/\.gome\.com\.cn/) < 0 ? "dc-6" : "dc-1", "auto", {clientId: function(e) {
        var t, n = function(e) {
            var t = document.cookie.match("(?:^|;)\\s*" + e + "=([^;]*)");
            return t ? unescape(t[1]) : void 0
        };
        while (e.length)
            if (t = n(e.shift()))
                return t
    }(["__clickidc", "__c_visitor"])});
gomeClicki("set", function() {
    var e = {};
    e.dimension1 = function() {
        function e(e) {
            var t = new Date, n = arguments;
            if (1 < n.length) {
                var o = n[2] || 0, i = n[3] || "/", r = n[4] || 0, a = n[5] || 0;
                o && t.setTime(t.getTime() + 1e3 * o);
                document.cookie = e + "=" + escape(n[1]) + (o ? "; expires=" + t.toGMTString() : "") + ("; path=" + i) + (r ? "; domain=" + r : "") + (a ? "; secure" : "");
                return n[1]
            }
            return(t = document.cookie.match("(?:^|;)\\s*" + e + "=([^;]*)")) ? unescape(t[1]) : 0
        }
        var t = e("cmpid"), n, o;
        t && null != t && void 0 != t && "" != t && (n = t.split("^!"), o = n[n.length - 1]);
        var i = "";
        n = /(^|\?|&)cmpid=([^&]*)(&|$)/;
        n = location.href.replace(/#$/, "").match(n);
        if (null != n && n[2] != o)
            t && null != t && void 0 != t && "" != t && (i = t + "^!"), i += n[2];
        else if (null != n || null == document.referrer || "" == document.referrer || t && null != t && void 0 != t && "" != t)
            i = t && null != t && void 0 != t && "" != t ? t : "direct";
        else {
            var t = document.referrer, i = !1, r, a;
            o = [];
            o = [["www.baidu.com", "baidu"], ["m.baidu.com", "baidum"], ["www.sogou.com", "sogou"], ["www.soso.com", "soso"], ["www.yahoo.", "yahoo"], ["www.google.com", "google"], ["www.haosou.com", "360"], ["m.haosou.com", "360m"], ["www.youdao.com", "youdao"], [".bing.com", "bing"], ["m.sm.cn", "sm"]];
            var c = /[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?/.exec(t)[0];
            o[0][0] == c && (i = !0, r = o[0][1], n = /(^|\?|&)wd=([^&]*)(&|$)/, a = t.match(n)[2]);
            o[1][0] == c && (i = !0, r = o[1][1], n = /(^|\?|&)word=([^&]*)(&|$)/, a = t.match(n)[2]);
            for (var s = 2; 4 > s; s++)
                o[s][0] == c && (i = !0, r = o[s][1], n = /(^|\?|&)query=([^&]*)(&|$)/, a = t.match(n)[2]);
            o[4][0] == c && (i = !0, r = o[4][1], n = /(^|\?|&)p=([^&]*)(&|$)/, a = t.match(n)[2]);
            for (s = 5; s < o.length; s++)
                -1 != c.indexOf(o[s][0]) && (i = !0, r = o[s][1], n = /(^|\?|&)q=([^&]*)(&|$)/, a = t.match(n)[2]);
            i ? i = "seo_" + r + "_" + a : (r = t.split("/")[2], i = "gome" != r.split(".")[1] ? "yj_" + r : "direct")
        }
        r = location.hostname.split(".");
        e("cmpid", i, 1800, null, /^\d+$/.test(r.join("")) || 3 > r.length ? location.hostname : r.slice(1).join("."));
        return i
    }();
    e.dimension2 = pageType;
    if (document.referrer != "")
        e.dimension3 = document.referrer;
    "undefined" != typeof dsp_gome_c1name && (e.dimension4 = dsp_gome_c1name, e.dimension5 = dsp_gome_c2name, e.dimension6 = dsp_gome_c3name, e.dimension7 = dsp_gome_c1id, e.dimension8 = dsp_gome_c3id);
    "undefined" != typeof prdInfo && (e.dimension4 = prdInfo.firstCategoryName, e.dimension5 = prdInfo.secondCategoryName, e.dimension6 = prdInfo.thirdCategoryName, e.dimension7 = prdInfo.firstCategoryId, e.dimension8 = prdInfo.thirdCategoryId, e.dimension9 = prdInfo.prdId, e.dimension10 = prdInfo.prdName, e.dimension13 = prdInfo.sku, prdInfo.shopNo !== "" && (e.dimension14 = prdInfo.shopNo), prdInfo.itemId !== "" && (e.dimension15 = prdInfo.itemId), e.metric1 = 1);
    "undefined" != typeof itemId && (e.dimension15 = itemId, "undefined" != typeof prodid) && (e.dimension9 = prodid);
    var t = $("#c8_shop_mId").val();
    t && (e.dimension14 = t);
    if (window.location.href.indexOf("cmpid=") > -1) {
        var n = document.location.href;
        var o = document.location.search;
        var i = document.location.hostname;
        var r = document.location.pathname;
        var a = document.location.hash;
        var c = o.replace(/^\?.*cmpid=([^&]*)(&.*)?$/i, "$1").split("_");
        var s = "";
        e.dimension12 = c.join("_");
        c.length && (s += "&utm_campaign=" + encodeURIComponent(c.shift())) && c.length && (s += "&utm_source=" + encodeURIComponent(c.shift())) && c.length && (s += "&utm_medium=" + encodeURIComponent(c.shift())) && c.length && (s += "&utm_content=" + encodeURIComponent(c.shift())) && c.length && (s += "&utm_term=" + encodeURIComponent(c.join("_")));
        e.location = document.location.protocol + "//" + i + r + o + s + a
    }
    return e
}());
gomeClicki("send", "pageview");
!function(e, t, n) {
    function o() {
    }
    function i(e) {
        return"function" == typeof e
    }
    function r(e) {
        return"[object Array]" == ft.call(Object(e))
    }
    function a(e) {
        return void 0 != e && -1 < (e.constructor + "").indexOf("String")
    }
    function c(e, t) {
        if (a(e) && (e = t[e]), !i(e))
            return o;
        var n = ht.call(arguments, 2);
        return function() {
            return e.apply(t, n.concat(ht.call(arguments)))
        }
    }
    function s(t) {
        var n = e.console, r = It, c = e[r] = e[r] || [];
        Ct && (Ct && a(mt) && (mt += mt.indexOf("?") > -1 ? "&" : "?", mt += "f=" + encodeURIComponent(t) + "&m=" + encodeURIComponent(ht.call(arguments, 1).join("")) + "&hash=" + u(), p(mt, o, !0)), c.push(ht.call(arguments)), c.length > Tt && c.splice(0, Tt - c.length), n && n.log && i(n.log) && (i(n.log.apply) ? n.log.apply(n, arguments) : n.log(arguments[0])))
    }
    function u() {
        return Math.round(2147483647 * Math.random())
    }
    function d(e) {
        var t, n = 1, o = 0;
        if (e)
            for (n = 0, t = e.length - 1; t >= 0; t--)
                o = e.charCodeAt(t), n = (n << 6 & 268435455) + o + (o << 14), o = 266338304 & n, n = 0 !== o ? n ^ o >> 21 : n;
        return n
    }
    function l() {
        for (var e, t = [], n = arguments.length, o = 0; n > o; o++)
            e = arguments[o], o > 0 && (e = 0 === e.indexOf("/") ? e.slice(1) : e), n - 1 > o && (e = "/" === e.slice(-1) ? e.slice(0, e.length - 1) : e), t.push(e);
        return t.join("/")
    }
    function p(o, i, r) {
        var a, c;
        try {
            a = "_clickiv4_" + +new Date + u(), c = e[a] = new Image, c.onload = c.onerror = function() {
                try {
                    i(), c.onload = c.onerror = e[a] = n
                } catch (t) {
                }
            }, c.src = o
        } catch (d) {
            try {
                c = t.createElement("img"), c.onload = c.onerror = function() {
                    try {
                        i(), c.onload = c.onerror = e[a] = n
                    } catch (t) {
                    }
                }, c.src = o
            } catch (l) {
                r || s("createImage", "error message is: ", d.message)
            }
        }
    }
    function g(e, n, o, i) {
        if (e) {
            var r = t.createElement("script");
            r.type = "text/javascript", r.async = !0, r.src = e, r.id = n, o && (r.addEventListener ? r.onload = o : r.onreadystatechange = function() {
                r.readyState in{loaded: 1, complete: 1} && (r.onreadystatechange = null)
            }), i && (r.onerror = i);
            var a = t.getElementsByTagName("script")[0];
            a.parentNode.insertBefore(r, a)
        }
    }
    function h(e, t, n, o) {
        e.addEventListener ? e.addEventListener(t, n, !!o) : e.attachEvent && e.attachEvent("on" + t, n)
    }
    function f(e, t, n) {
        e.removeEventListener ? e.removeEventListener(t, n, !1) : e.detachEvent && e.detachEvent("on" + t, n)
    }
    function m(e) {
        var n = new Date, o = arguments, i = o.length;
        if (i > 1) {
            var r = o[2] || 0, a = o[3] || "/", c = o[4] || 0, s = o[5] || 0;
            return r && n.setTime(n.getTime() + 1e3 * r), t.cookie = e + "=" + escape(o[1]) + (r ? "; expires=" + n.toGMTString() : "") + ("; path=" + a) + (c && "none" != c ? "; domain=" + c : "") + (s ? "; secure" : ""), o[1]
        }
        var u = t.cookie.match("(?:^|;)\\s*" + e + "=([^;]*)");
        return u ? unescape(u[1]) : 0
    }
    function v() {
        var e = "" + t.location.hostname;
        return 0 === e.indexOf("www.") ? e.substring(4) : e
    }
    function y(e) {
        var n = t.referrer;
        if (/^https?:\/\//i.test(n)) {
            if (e)
                return n;
            var o = "//" + t.location.hostname, i = n.indexOf(o);
            if (5 === i || 6 === i) {
                var r = n.charAt(i + o.length);
                if ("/" === r || "?" === r || "" === r || ":" === r)
                    return
            }
            return n
        }
    }
    function w() {
        var t, n, o;
        if ((o = (o = e.navigator) ? o.plugins : null) && o.length)
            for (var i = 0; i < o.length && !n; i++) {
                var r = o[i];
                -1 < r.name.indexOf("Shockwave Flash") && (n = r.description)
            }
        if (!n)
            try {
                t = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"), n = t.GetVariable("$version")
            } catch (a) {
            }
        if (!n)
            try {
                t = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"), n = "WIN 6,0,21,0", t.AllowScriptAccess = "always", n = t.GetVariable("$version")
            } catch (c) {
            }
        if (!n)
            try {
                t = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"), n = t.GetVariable("$version")
            } catch (s) {
            }
        return n && (t = n.match(/[\d]+/g)) && 3 <= t.length && (n = t[0] + "." + t[1] + " r" + t[2]), n || void 0
    }
    function k(e, t) {
        return e.name = t
    }
    function b(e, t) {
        var n, o, i = 0, r = {};
        for (o = Math.min(e.length + 1, t.length); o > i; i++)
            if ("object" == typeof t[i])
                for (n in t[i])
                    t[i].hasOwnProperty(n) && (r[n] = t[i][n]);
            else
                e.length > i && (r[e[i]] = t[i]);
        return r
    }
    function _(e, t) {
        return 1 == t.length && null != t[0] && "object" == typeof t[0] ? t[0] : b(e, t)
    }
    function I() {
        return pt.userAgent.indexOf("Firefox") >= 0 && ![].reduce
    }
    function T(e, t) {
        return t = t || o, e.length <= 2036 ? C(e, t) : e.length <= 8192 && !I() ? S(e, t) || E(e, t) || x(e, t) : (s("send", "request param is to long ", e.length), !1)
    }
    function C(e, t) {
        t = t || o, p(l(xt, Ot) + "?" + e, t)
    }
    function E(t, n) {
        if (n = n || o, !e.XDomainRequest)
            return!1;
        var i = new e.XDomainRequest;
        return i.open("POST", l(xt, jt)), i.onerror = function() {
            n()
        }, i.onload = n, i.send(t), !0
    }
    function S(t, n) {
        if (n = n || o, !e.XMLHttpRequest)
            return!1;
        var i = new e.XMLHttpRequest;
        return"withCredentials"in i ? (i.open("POST", l(xt, jt), !0), i.setRequestHeader("Content-Type", "text/plain"), i.onreadystatechange = function() {
            4 == i.readyState && (n(), n = null)
        }, i.send(t), !0) : !1
    }
    function x(n, i) {
        var r, a, c, s, u = 0, d = !1;
        if (i = i || o, c = function() {
            a.src = "", a.parentNode && a.parentNode.removeChild(a)
        }, s = function() {
            if (!d)
                try {
                    if (u > 9 || a.contentWindow.location.host == t.location.host)
                        return d = !0, c(), f(e, "beforeunload", c), void i()
                } catch (n) {
                    u++, setTimeout(s, 200)
                }
        }, t.body) {
            n += "####==collect_path=" + l(xt, Nt) + "==####", n = encodeURIComponent(n);
            try {
                a = t.createElement('<iframe name="' + n + '"></iframe>')
            } catch (p) {
                a = t.createElement("iframe"), k(a, n)
            }
            a.height = "0", a.width = "0", a.style.display = "none", a.style.visibility = "hidden", r = l(xt, Pt) + "#", r += encodeURIComponent(t.location.protocol + "//" + t.location.host + "/favicon.ico"), h(e, "beforeunload", c), h(a, "load", s), t.body.appendChild(a), a.src = r
        } else {
            var g = arguments, m = arguments.callee;
            setTimeout(function() {
                m.apply(e, g)
            }, 100)
        }
    }
    function O() {
        this.keys = [], this.t1 = {}, this.t2 = {}
    }
    function j(e, t, n, o, i) {
        var r = this;
        k(r, e), r.protocolParameter = t, r.defaultValue = n, r.getter = o, r.setter = i
    }
    function N(e, t, n, o, i) {
        var r = new j(e, t, n, o, i);
        return At.set(r.name, r), r.name
    }
    function P(e, t) {
        Lt.push([new RegExp("^" + e + "$"), t])
    }
    function L(e, t, n) {
        return N(e, t, n, void 0, o)
    }
    function A(e, t, n, i) {
        return N(e, t, n, i, o)
    }
    function R(e) {
        var t = At.get(e);
        if (!t)
            for (var n = 0; n < Lt.length; n++) {
                var o = Lt[n], i = o[0].exec(e);
                i && (t = o[1](i), At.set(t.name, t))
            }
        return t
    }
    function M(e) {
        var t;
        return At.map(function(n, o) {
            o.protocolParameter == e && (t = n)
        }), t
    }
    function q(e, t) {
        var n = e.get(t);
        return void 0 == n ? "" : "" + n
    }
    function z(e, t) {
        var n = e.get(t);
        return void 0 == n ? 0 : 1 * n
    }
    function $() {
        function e(e, t) {
            return e && e.hasOwnProperty && e instanceof t
        }
        var t = this;
        return e(t, $) || (t = new $, t.init()), t
    }
    function V() {
        this.data = new O
    }
    function F() {
        this.stack = []
    }
    function G() {
        var e = t.location.protocol;
        if ("http:" != e && "https:" != e)
            throw s("checkProtocolTask", "current protocol is:", e), "abort"
    }
    function U(e) {
        return e.length > 1 && e.lastIndexOf("/") == e.length - 1 && (e = e.substr(0, e.length - 1)), 0 !== e.indexOf("/") && (e = "/" + e), e
    }
    function B(e) {
        return 0 === e.indexOf(".") ? e.substr(1) : e
    }
    function D(e) {
        if ("cookie" === q(e, Tn)) {
            var t = [], n = e.get(kn), o = U(e.get(_n)), i = B(e.get(bn)), r = e.get(In), a = q(e, zt), c = v().split(".");
            if ("auto" != i && (m(n, a, r, o, i), m(n) == a))
                return void(Rn = !0);
            if (4 == c.length && c[c.length - 1] > 0)
                t = ["none"];
            else {
                for (var s = c.length - 2; s >= 0; s--)
                    t.push(c.slice(s).join("."));
                t.push("none")
            }
            for (var u = 0; u < t.length; u++)
                if (i = t[u], m(n, a, r, o, i), m(n) == a)
                    return e.set(bn, i), void(Rn = !0);
            e.set(bn, "auto")
        }
    }
    function X(e) {
        "cookie" !== q(e, Tn) || Rn || (D(e), Rn) || e.data.set(zt, 0)
    }
    function H(e) {
        if (100 !== e.get(En) && d(q(e, zt)) % 1e4 >= 100 * z(e, En))
            throw s("samplerTask", "current sampleRate is: ", e.get(En)), "abort"
    }
    function Z(e) {
        var t = [];
        At.map(function(n, o) {
            if (o.protocolParameter) {
                var i = e.get(n);
                0 !== i && i != o.defaultValue && ("boolean" == typeof i && (i *= 1), t.push(o.protocolParameter + "=" + encodeURIComponent("" + i)))
            }
        }), t.push("z=" + u()), e.set(nn, t.join("&"), !0)
    }
    function K(e) {
        var t = q(e, nn), n = e.get(tn);
        switch (e.get(qt)) {
            case"image":
                C(t, n);
                break;
            case"cors":
                S(t, n) || E(t, n);
                break;
            case"iframe":
                x(t, n);
                break;
            default:
                T(t, n)
        }
        e.set(tn, o, !0)
    }
    function W() {
        for (var n = pt.appName + pt.version + pt.platform + pt.userAgent + (t.cookie || "") + (t.referrer || ""), o = n.length, i = e.history.length; i > 0; )
            n += i-- ^ o++;
        return[Math.round((new Date).getTime() / 1e3), u() ^ 2147483647 & d(n)].join("").substr(0, 18)
    }
    function J(e, t) {
        var n = e.get(kn), o = m(n);
        t || (t = o || W()), e.data.set(zt, t), D(e)
    }
    function Q(e) {
        var n = "CSS1Compat" === t.compatMode ? "documentElement" : "body";
        if (e.set("referrer", y(e.get(xn))), gt) {
            var o = gt.pathname || "";
            "/" != o.charAt(0) && (o = "/" + o), e.set(Kt, gt.protocol + "//" + gt.hostname + o + gt.search), lt && (e.set(Vt, lt.width + "*" + lt.height), e.set(Ut, lt.colorDepth + "-bit")), e.set(Ft, t[n].clientWidth + "*" + t[n].clientHeight), e.set(Xt, w()), e.set(Gt, t.characterSet || t.charset);
            var r = "", a = !1;
            try {
                a = pt && i(pt.javaEnabled) && pt.javaEnabled() || !1
            } catch (c) {
                s("collectClientInfo", "javaEnabled error", c.message)
            }
            try {
                r = (pt && (pt.language || pt.browserLanguage) || "").toLowerCase()
            } catch (u) {
                s("collectClientInfo", "language error", u.message)
            }
            e.set(Dt, a), e.set(Bt, r)
        }
    }
    function Y(t) {
        var n = e.performance || e.webkitPerformance, o = n && n.timing;
        if (!o)
            return!1;
        var i = o.navigationStart;
        return 0 === i ? !1 : (t[cn] = o.loadEventStart - i, t[un] = o.domainLookupEnd - o.domainLookupStart, t[pn] = o.connectEnd - o.connectStart, t[ln] = o.responseStart - o.requestStart, t[sn] = o.responseEnd - o.responseStart, t[dn] = o.fetchStart - i, t[gn] = o.domInteractive - i, t[hn] = o.domContentLoadedEventStart - i, !0)
    }
    function et(t) {
        if (e.top != e)
            return!1;
        var n = e.external, o = n && n.onloadT;
        return n && !n.isValidLoadTime && (o = void 0), o > 2147483648 && (o = void 0), o > 0 && n.setPageReadyTime(), void 0 == o ? !1 : (t[cn] = o, !0)
    }
    function tt(e, t) {
        var n = e[t];
        (isNaN(n) || 1 / 0 == n || 0 > n) && (e[t] = void 0)
    }
    function nt(t, n) {
        var o = Math.min(z(t, Sn), 100);
        if (d(q(t, zt)) % 100 < o) {
            var i = [];
            if (Y(i) || et(i)) {
                var r = i[cn];
                void 0 != r && isFinite(r) && !isNaN(r) && (r > 0 ? (tt(i, un), tt(i, pn), tt(i, ln), tt(i, sn), tt(i, dn), tt(i, gn), tt(i, hn), n(i)) : h(e, "load", function() {
                    nt(t, n)
                }, !1))
            }
        }
    }
    function ot(e) {
        e.timingIsSended || (e.timingIsSended = !0, nt(e.storage, function(t) {
            e.storage.set(Zt, !0, !0), e.send("timing", t)
        }))
    }
    function it(e) {
        function t(e, t) {
            setTimeout(function() {
                e.storage.set(Zt, !0, !0), e.send("pulse")
            }, 1e3 * t)
        }
        if (e.storage.get(Cn))
            for (var n = 0; n < St.length; n++)
                t(e, St[n])
    }
    function rt(e) {
        function t(e, t) {
            o.storage.data.set(e, t)
        }
        function n(e, n) {
            t(e, n), o.filters.add(e)
        }
        var o = this;
        o.storage = new V, o.filters = new F, t(wn, e[wn]), t(Mt, e[Mt]), t(kn, e[kn]), t(bn, e[bn] || v()), t(_n, e[_n]), t(In, e[In]), t(En, e[En]), t(qt, e[qt]), t(Sn, e[Sn]), t(Cn, e[Cn]), t(xn, e[xn]), t($t, e[$t]), n(On, G), n(jn, X), n(Nn, H), n(Pn, Z), n(Ln, K), J(o.storage, e[zt]), Q(o.storage), it(o)
    }
    function at(e, t) {
        var n = this;
        n.id = e, n.url = t, n.factory = null, n.instance = null, n.loading = !1, n.ready = !1, n.queue = [], n.prefix = "plugin_2015_", n.load()
    }
    function ct() {
        this.plugins = {}
    }
    function st(e) {
        return e.indexOf(".") + e.indexOf(":") > -2
    }
    function ut(e) {
        var t = this;
        if (i(e[0]))
            t.ready = e[0];
        else {
            var n = qn.exec(e[0]);
            if (null != n && 4 == n.length && (t.name = n[1] || vt, t.pluginId = n[2] || "", t.action = n[3], t.opts = ht.call(e, 1)), !t.action)
                throw s("Env", "no action"), "abort";
            if ("require" === t.action && (!a(e[1]) || "" === e[1]))
                throw s("Env", "unexpected require arg: ", e[1]), "abort";
            if ("provide" === t.action && (!a(e[1]) || "" === e[1]))
                throw s("Env", "unexpected provide arg: ", e[1]), "abort";
            if (st(t.pluginId) || st(t.action))
                throw s("Env", "pluginId or action has  keyword ."), "abort";
            if ("provide" === t.action && t.name != vt)
                throw s("Env", "provide not need trackerName"), "abort"
        }
    }
    function dt() {
        zn.append.apply(zn, [arguments])
    }
    var lt = e.screen, pt = e.navigator, gt = e.location, ht = Array.prototype.slice, ft = Object.prototype.toString, mt = "", vt = "t0", yt = "__clickidc", wt = 31536e4, kt = "dc", bt = "queue", _t = "ClickiTrackerName", It = "clickiLogStack2015", Tt = 3e3, Ct = gt.hash.indexOf("clicki/debug/") > -1 || !1, Et = 10, St = [5, 15, 30], xt = ("https:" == gt.protocol ? "https:" : "http:") + "//sm.gome.com.cn/", Ot = "collect/track_proxy", jt = "collect/track_ajax", Nt = "collect/track_ajax", Pt = "collect_iframe.html";
    O.prototype.set = function(e, t, n) {
        this.keys.push(e), n ? this.t2[":" + e] = t : this.t1[":" + e] = t
    }, O.prototype.get = function(e) {
        return this.t2.hasOwnProperty(":" + e) ? this.t2[":" + e] : this.t1[":" + e]
    }, O.prototype.map = function(e) {
        for (var t = 0; t < this.keys.length; t++) {
            var n = this.keys[t], o = this.get(n);
            o && e(n, o)
        }
    };
    var Lt = [], At = new O, Rt = $.prototype;
    Rt.init = function() {
        return this.data = [], this.dataLock = [], this.gestureCache = [], this.gestureBindLock = !1, this.binder = ["binderScroll", "binderKeydown", "binderResize", "binderMousedown", "binderMousemove", "binderSwipe", "binderTurn", "binderPinch"], this.bindEvents(), this.reset(), this
    }, Rt.bindEvents = function() {
        for (var e = 0; e < this.binder.length; e++)
            this.dataLock[e] = !1, this[this.binder[e]](e)
    }, Rt.onGesturesEventTrigger = function(e) {
        for (var t = this.gestureCache, n = e.touches ? e.touches.length : 1, o = n >= 2 ? "pinch" : "swipe", i = 0; i < t.length; i++)
            t[i] && t[i][0] === o && this.onEventTrigger(t[i][1])
    }, Rt.bindGesturesEvent = function(n, o) {
        this.gestureCache.push([n, o]);
        var i = "ontouchstart"in e;
        !this.gestureBindLock && i && t.addEventListener("touchmove", c(this.onGesturesEventTrigger, this), !1)
    }, Rt.onEventTrigger = function(e) {
        this.dataLock[e] || (this.dataLock[e] = !0, this.data[e] = 1)
    }, Rt.binderScroll = function(t) {
        h(e, "scroll", c(this.onEventTrigger, this, t))
    }, Rt.binderKeydown = function(e) {
        h(t, "keydown", c(this.onEventTrigger, this, e))
    }, Rt.binderResize = function(t) {
        h(e, "resize", c(this.onEventTrigger, this, t))
    }, Rt.binderMousedown = function(e) {
        h(t, "mousedown", c(this.onEventTrigger, this, e))
    }, Rt.binderMousemove = function(e) {
        h(t, "mousemove", c(this.onEventTrigger, this, e))
    }, Rt.binderSwipe = function(e) {
        this.bindGesturesEvent("swipe", e)
    }, Rt.binderTurn = function(t) {
        e.orientation && e.addEventListener("orientationchange", c(this.onEventTrigger, this, t), !1)
    }, Rt.binderPinch = function(e) {
        this.bindGesturesEvent("pinch", e)
    }, Rt.reset = function() {
        for (var e = 0; e < this.binder.length; e++)
            this.data[e] = 0
    }, Rt.get = function() {
        var e = this.data.join("-");
        return this.reset(), e
    }, N("protocolVersion", "v");
    var Mt = L("trackingId", "tid");
    N("anonymizeIp", "aip"), N("queueTime", "qt");
    var qt = N("forceSendMethod"), zt = L("clientId", "cid"), $t = N("userId", "uid");
    N("miaozhenId", "mzid"), N("sessionControl", "sc", ""), N("referrer", "dr"), N("googleCampaignName", "cn"), N("googleCampaignSource", "cs"), N("googleCampaignMedium", "cm"), N("googleCampaignKeyword", "ck"), N("googleCampaignContent", "cc"), N("miaozhenCampaignId", "mzc"), N("miaozhenCampaignId", "mzs"), N("miaozhenCampaignId", "mzk"), P("customAds([0-9]+)", function(e) {
        return new j(e[0], "ca" + e[1])
    });
    var Vt = N("screenResolution", "sr"), Ft = N("viewportSize", "vp"), Gt = N("encoding", "de"), Ut = N("screenColors", "sd"), Bt = N("language", "ul"), Dt = N("javaEnabled", "je"), Xt = N("flashVersion", "fl"), Ht = N("hitType", "t"), Zt = N("nonInteraction", "ni", void 0, function(e, t, n) {
        return void 0 == n ? !1 : n
    }), Kt = N("location", "dl", "");
    N("hostname", "dh");
    var Wt = N("page", "dp", "");
    N("title", "dt", function() {
        return t.title || void 0
    }), N("appName", "an"), N("appId", "aid", ""), N("appVersion", "av", ""), N("appInstallerId", "aiid", "");
    var Jt = N("eventCategory", "ec"), Qt = N("eventAction", "ea"), Yt = N("eventLabel", "el"), en = N("eventValue", "ev");
    N("customActionId", "caid"), P("customActionLabel([0-9]+)", function(e) {
        return new j(e[0], "cal" + e[1])
    }), P("customActionValue([0-9]+)", function(e) {
        return new j(e[0], "cav" + e[1])
    }), P("dimension([0-9]+)", function(e) {
        return new j(e[0], "cd" + e[1])
    }), P("metric([0-9]+)", function(e) {
        return new j(e[0], "cm" + e[1])
    }), A("userBehavior", "ub", void 0, c("get", $()));
    var tn = N("hitCallback"), nn = N("hitPayload"), on = N("socialNetwork", "sn"), rn = N("socialAction", "sa"), an = N("socialTarget", "st"), cn = N("l1", "plt"), sn = N("l2", "pdt"), un = N("l3", "dns"), dn = N("l4", "rrt"), ln = N("l5", "srt"), pn = N("l6", "tcp"), gn = N("l7", "dit"), hn = N("l8", "clt"), fn = N("timingCategory", "utc"), mn = N("timingVar", "utv"), vn = N("timingLabel", "utl"), yn = N("timingValue", "utt"), wn = L("name"), kn = L("cookieName", void 0, yt), bn = L("cookieDomain"), _n = L("cookiePath", void 0, "/"), In = L("cookieExpires", void 0, wt), Tn = L("storage", void 0, "cookie"), Cn = L("sendPulse", void 0, !0), En = L("sampleRate", "sf", 100), Sn = L("siteSpeedSampleRate", void 0, Et), xn = L("alwaysSendReferrer", void 0, !1), On = N("checkProtocolTask"), jn = N("checkStorageTask"), Nn = N("samplerTask"), Pn = N("buildHitTask"), Ln = N("sendHitTask"), An = !1;
    N("forceSSL", void 0, void 0, function() {
        return An
    }, function(e, t, n) {
        An = !!n
    }), P("\\&(.*)", function(e) {
        var t = new j(e[0], e[1]), n = M(e[0].substring(1));
        return n && (t.getter = function(e) {
            return e.get(n)
        }, t.setter = function(e, t, n, o) {
            e.set(t, n, o)
        }, t.protocolParameter = void 0), t
    }), V.prototype.clearTemp = function() {
        this.data.t2 = {}
    }, V.prototype.get = function(e) {
        var t = R(e), n = this.data.get(e);
        return t && void 0 == n && (n = i(t.defaultValue) ? t.defaultValue() : t.defaultValue), t && i(t.getter) ? t.getter(this, e, n) : n
    }, V.prototype.set = function(e, t, n) {
        if (e)
            if ("object" == typeof e)
                for (var o in e)
                    e.hasOwnProperty(o) && arguments.callee.call(this, o, e[o], n);
            else {
                var r = R(e);
                r && i(r.setter) ? r.setter(this, e, t, n) : this.data.set(e, t, n)
            }
    }, F.prototype.add = function(e) {
        this.stack.push(e)
    }, F.prototype.run = function(t) {
        try {
            for (var n = 0; n < this.stack.length; n++) {
                var r = t.get(this.stack[n]);
                i(r) && r.call(e, t)
            }
        } catch (a) {
        }
        var c = t.get(tn);
        c != o && (t.set(tn, o, !0), setTimeout(c, 10))
    };
    var Rn = !1;
    rt.prototype.get = function(e) {
        return this.storage.get(e)
    }, rt.prototype.set = function(e, t) {
        return this.storage.set(e, t), this
    };
    var Mn = {pageview: [Wt], event: [Jt, Qt, Yt, en], social: [on, rn, an], timing: [fn, mn, vn, yn]};
    rt.prototype.send = function() {
        var e, t;
        arguments.length > 0 && (a(arguments[0]) ? (e = arguments[0], t = ht.call(arguments, 1)) : (e = arguments[0] && arguments[0][Ht], t = ht.call(arguments))), e && (t = _(Mn[e] || [], t), t[Ht] = e, this.storage.set(t, void 0, !0), this.filters.run(this.storage), "pageview" === e && ot(this), this.storage.clearTemp())
    }, at.prototype.load = function() {
        var e = this;
        e.loading = !0, g(e.url, e.prefix + e.id)
    }, at.prototype.provide = function(e, t) {
        var n;
        this.factory = e, this.ready = !0, this.loading = !1;
        try {
            this.instance = new e(t)
        } catch (o) {
            this.instance = {}, s("plugin provide", "factory init error; plugin id is:", this.id, ";error message is:", o.message)
        }
        for (; n = this.queue.shift(); )
            this.use.apply(this, n)
    }, at.prototype.use = function(e, t) {
        var n = this.instance;
        if (this.ready)
            try {
                n[e].apply(n, t)
            } catch (o) {
                s("plugin use", "action is: ", e, "; plugin id is:", this.id, ";error message is:", o.message)
            }
        else
            this.queue.push(ht.call(arguments))
    }, ct.prototype.getAll = function() {
        return this.plugins
    }, ct.prototype.get = function(e) {
        return this.plugins[e]
    }, ct.prototype.set = function(e, t) {
        this.plugins[e] = t
    }, ct.prototype.use = function(e, t, n) {
        var o = this.get(e);
        o && o.use && o.use(t, n)
    }, ct.prototype.require = function(e, t) {
        this.get(e) || this.set(e, new at(e, t))
    }, ct.prototype.provide = function(e, t, n) {
        var o = this.get(e);
        o && o.provide && o.provide.apply(o, ht.call(arguments, 1))
    };
    var qn = /^(?:(\w+)\.)?(?:(\w+):)?(\w+)$/, zn = {};
    zn.envs = [], zn.pluginM = new ct, zn.process = function() {
        for (var e = [], t = 0; t < arguments.length; t++)
            try {
                e.push(new ut(arguments[t]))
            } catch (n) {
            }
        return e
    }, zn.run = function(t) {
        try {
            if (t.ready)
                t.ready.call(e, dt.getByName(vt));
            else {
                var n = dt.getByName(t.name);
                if (t.pluginId)
                    return this.pluginM.use(t.pluginId, t.action, t.opts);
                switch (t.action) {
                    case"create":
                        dt.create.apply(dt, t.opts);
                        break;
                    case"remove":
                        dt.remove.call(dt, t.name);
                        break;
                    case"require":
                        this.pluginM.require.apply(this.pluginM, t.opts);
                        break;
                    case"provide":
                        this.pluginM.provide.apply(this.pluginM, t.opts.concat([n]));
                        break;
                    default:
                        n[t.action].apply(n, t.opts)
                    }
            }
        } catch (o) {
            s("controller.run", o.message)
        }
    }, zn.append = function() {
        var e = this, t = e.process.apply(e, arguments);
        for (t = e.envs.concat(t), e.envs = []; t.length && (e.run(t.shift()), !(e.envs.length > 0)); )
            ;
        e.envs = e.envs.concat(t)
    };
    var $n = [], Vn = function(e, t, n) {
        var o, i;
        return a(e[t]) && (i = e[t], o = i ? i.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "") : ""), o || n
    }(e, _t, kt);
    dt.lock = $n, dt.cache = {}, dt.start = 0, dt.stack = [];
    var Fn = [Mt, bn, wn];
    dt.create = function() {
        var e = _(Fn, ht.call(arguments));
        e[wn] || (e[wn] = vt);
        var t = "" + e[wn];
        if (dt.cache[t])
            return dt.cache[t];
        var n = new rt(e);
        return dt.cache[t] = n, dt.stack.push(n), n
    }, dt.remove = function(e) {
        for (var t = 0; t < dt.stack.length; t++)
            if (dt.stack[t].get(wn) == e) {
                dt.stack.splice(t, 1), dt.cache[e] = null;
                break
            }
    }, dt.getAll = function() {
        return dt.stack.slice(0)
    }, dt.getByName = function(e) {
        return dt.cache[e]
    }, dt.init = function() {
        var t = e[Vn];
        if (!t || t.lock != $n) {
            Ct = !!t.debug, mt = t.debugSendUrl, dt.loaded = !0, dt.start = t && t.start, e[Vn] = dt;
            var n = t && t[bt];
            r(n) && zn.append.apply(zn, n)
        }
    }, dt.init()
}(window, document);
(function() {
    function e(e) {
        var t = new Date, n = arguments, o = n.length;
        if (o > 1) {
            var i = n[2] || 0, r = n[3] || "/", a = n[4] || 0, c = n[5] || 0;
            if (i)
                t.setTime(t.getTime() + i * 1e3);
            document.cookie = e + "=" + escape(n[1]) + (i ? "; expires=" + t.toGMTString() : "") + ("; path=" + r) + (a ? "; domain=" + a : "") + (c ? "; secure" : "");
            return n[1]
        } else {
            var s = document.cookie.match("(?:^|;)\\s*" + e + "=([^;]*)");
            return s ? unescape(s[1]) : 0
        }
    }
    var t = e("__clickidc"), n = e("__c_visitor"), o = document.domain.split("."), i = [];
    for (var r = o.length - 2; r >= 0; r--) {
        i.push(o.slice(r).join("."))
    }
    for (var r = 0; r < i.length; r++) {
        !n ? e("__c_visitor", t, 3600 * 24 * 365 * 10, "/", i[r]) : e("__c_visitor", n, 3600 * 24 * 365 * 10, "/", i[r]);
        if (e("__clickidc") == e("__c_visitor"))
            break
    }
})();
var pageType = pageType || "";
var pageId = pageId || "";
var zampda1 = zampda1 || "";
var prodid = prodid || "";
var catName = catName || "";
var totalPrice = totalPrice || "";
var shippingGroups = shippingGroups || [];
if (pageId == "" || pageType == "") {
    var _body = $("body").attr("class") || "", _wurl = window.location.href;
    if (_body.indexOf("home") >= 0) {
        pageType = "homepage";
        pageId = "628"
    } else if (_wurl.indexOf("item") >= 0) {
        pageType = "productPage";
        pageId = "637"
    } else if (_wurl.indexOf("search") >= 0) {
        pageType = "searchPage";
        pageId = "631"
    } else if (_wurl.indexOf("category") >= 0) {
        pageType = "categoryPage";
        pageId = "632"
    } else if (_wurl.indexOf("jiadian") >= 0) {
        pageType = "electronicPage";
        pageId = "633"
    } else if (_wurl.indexOf("fashion") >= 0) {
        pageType = "fashionPage";
        pageId = "634"
    } else if (_wurl.indexOf("market") >= 0) {
        pageType = "marketPage";
        pageId = "635"
    } else if (_wurl.indexOf("enterprise") >= 0) {
        pageType = "enterprisePage";
        pageId = "636"
    } else {
        pageType = "other";
        pageId = "627"
    }
}
var google_tag_params = {ecomm_pagetype: pageType, ecomm_category: catName, ecomm_prodid: prodid, ecomm_totalvalue: totalPrice};
var conversion_value = totalPrice;
dataLayer = [{google_tag_params: window.google_tag_params, conversion_value: window.conversion_value}];
window["ClickiTrackerName"] = "gomeClicki";
window.gomeClicki = window.gomeClicki || function() {
    (window.gomeClicki.queue = window.gomeClicki.queue || []).push(arguments)
};
window.gomeClicki.start = +new Date;
gomeClicki("create", document.location.href.search(/\.gome\.com\.cn/) < 0 ? "dc-6" : "dc-1", "auto", {clientId: function(e) {
        var t, n = function(e) {
            var t = document.cookie.match("(?:^|;)\\s*" + e + "=([^;]*)");
            return t ? unescape(t[1]) : void 0
        };
        while (e.length)
            if (t = n(e.shift()))
                return t
    }(["__clickidc", "__c_visitor"])});
gomeClicki("set", function() {
    var e = {};
    e.dimension1 = function() {
        function e(e) {
            var t = new Date, n = arguments;
            if (1 < n.length) {
                var o = n[2] || 0, i = n[3] || "/", r = n[4] || 0, a = n[5] || 0;
                o && t.setTime(t.getTime() + 1e3 * o);
                document.cookie = e + "=" + escape(n[1]) + (o ? "; expires=" + t.toGMTString() : "") + ("; path=" + i) + (r ? "; domain=" + r : "") + (a ? "; secure" : "");
                return n[1]
            }
            return(t = document.cookie.match("(?:^|;)\\s*" + e + "=([^;]*)")) ? unescape(t[1]) : 0
        }
        var t = e("cmpid"), n, o;
        t && null != t && void 0 != t && "" != t && (n = t.split("^!"), o = n[n.length - 1]);
        var i = "";
        n = /(^|\?|&)cmpid=([^&]*)(&|$)/;
        n = location.href.replace(/#$/, "").match(n);
        if (null != n && n[2] != o)
            t && null != t && void 0 != t && "" != t && (i = t + "^!"), i += n[2];
        else if (null != n || null == document.referrer || "" == document.referrer || t && null != t && void 0 != t && "" != t)
            i = t && null != t && void 0 != t && "" != t ? t : "direct";
        else {
            var t = document.referrer, i = !1, r, a;
            o = [];
            o = [["www.baidu.com", "baidu"], ["m.baidu.com", "baidum"], ["www.sogou.com", "sogou"], ["www.soso.com", "soso"], ["www.yahoo.", "yahoo"], ["www.google.com", "google"], ["www.haosou.com", "360"], ["m.haosou.com", "360m"], ["www.youdao.com", "youdao"], [".bing.com", "bing"], ["m.sm.cn", "sm"]];
            var c = /[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?/.exec(t)[0];
            o[0][0] == c && (i = !0, r = o[0][1], n = /(^|\?|&)wd=([^&]*)(&|$)/, a = t.match(n)[2]);
            o[1][0] == c && (i = !0, r = o[1][1], n = /(^|\?|&)word=([^&]*)(&|$)/, a = t.match(n)[2]);
            for (var s = 2; 4 > s; s++)
                o[s][0] == c && (i = !0, r = o[s][1], n = /(^|\?|&)query=([^&]*)(&|$)/, a = t.match(n)[2]);
            o[4][0] == c && (i = !0, r = o[4][1], n = /(^|\?|&)p=([^&]*)(&|$)/, a = t.match(n)[2]);
            for (s = 5; s < o.length; s++)
                -1 != c.indexOf(o[s][0]) && (i = !0, r = o[s][1], n = /(^|\?|&)q=([^&]*)(&|$)/, a = t.match(n)[2]);
            i ? i = "seo_" + r + "_" + a : (r = t.split("/")[2], i = "gome" != r.split(".")[1] ? "yj_" + r : "direct")
        }
        r = location.hostname.split(".");
        e("cmpid", i, 1800, null, /^\d+$/.test(r.join("")) || 3 > r.length ? location.hostname : r.slice(1).join("."));
        return i
    }();
    e.dimension2 = pageType;
    if (document.referrer != "")
        e.dimension3 = document.referrer;
    "undefined" != typeof dsp_gome_c1name && (e.dimension4 = dsp_gome_c1name, e.dimension5 = dsp_gome_c2name, e.dimension6 = dsp_gome_c3name, e.dimension7 = dsp_gome_c1id, e.dimension8 = dsp_gome_c3id);
    "undefined" != typeof prdInfo && (e.dimension4 = prdInfo.firstCategoryName, e.dimension5 = prdInfo.secondCategoryName, e.dimension6 = prdInfo.thirdCategoryName, e.dimension7 = prdInfo.firstCategoryId, e.dimension8 = prdInfo.thirdCategoryId, e.dimension9 = prdInfo.prdId, e.dimension10 = prdInfo.prdName, e.dimension13 = prdInfo.sku, prdInfo.shopNo !== "" && (e.dimension14 = prdInfo.shopNo), prdInfo.itemId !== "" && (e.dimension15 = prdInfo.itemId), e.metric1 = 1);
    "undefined" != typeof itemId && (e.dimension15 = itemId, "undefined" != typeof prodid) && (e.dimension9 = prodid);
    var t = $("#c8_shop_mId").val();
    t && (e.dimension14 = t);
    if (window.location.href.indexOf("cmpid=") > -1) {
        var n = document.location.href;
        var o = document.location.search;
        var i = document.location.hostname;
        var r = document.location.pathname;
        var a = document.location.hash;
        var c = o.replace(/^\?.*cmpid=([^&]*)(&.*)?$/i, "$1").split("_");
        var s = "";
        e.dimension12 = c.join("_");
        c.length && (s += "&utm_campaign=" + encodeURIComponent(c.shift())) && c.length && (s += "&utm_source=" + encodeURIComponent(c.shift())) && c.length && (s += "&utm_medium=" + encodeURIComponent(c.shift())) && c.length && (s += "&utm_content=" + encodeURIComponent(c.shift())) && c.length && (s += "&utm_term=" + encodeURIComponent(c.join("_")));
        e.location = document.location.protocol + "//" + i + r + o + s + a
    }
    return e
}());
gomeClicki("send", "pageview");
!function(e, t, n) {
    function o() {
    }
    function i(e) {
        return"function" == typeof e
    }
    function r(e) {
        return"[object Array]" == ft.call(Object(e))
    }
    function a(e) {
        return void 0 != e && -1 < (e.constructor + "").indexOf("String")
    }
    function c(e, t) {
        if (a(e) && (e = t[e]), !i(e))
            return o;
        var n = ht.call(arguments, 2);
        return function() {
            return e.apply(t, n.concat(ht.call(arguments)))
        }
    }
    function s(t) {
        var n = e.console, r = It, c = e[r] = e[r] || [];
        Ct && (Ct && a(mt) && (mt += mt.indexOf("?") > -1 ? "&" : "?", mt += "f=" + encodeURIComponent(t) + "&m=" + encodeURIComponent(ht.call(arguments, 1).join("")) + "&hash=" + u(), p(mt, o, !0)), c.push(ht.call(arguments)), c.length > Tt && c.splice(0, Tt - c.length), n && n.log && i(n.log) && (i(n.log.apply) ? n.log.apply(n, arguments) : n.log(arguments[0])))
    }
    function u() {
        return Math.round(2147483647 * Math.random())
    }
    function d(e) {
        var t, n = 1, o = 0;
        if (e)
            for (n = 0, t = e.length - 1; t >= 0; t--)
                o = e.charCodeAt(t), n = (n << 6 & 268435455) + o + (o << 14), o = 266338304 & n, n = 0 !== o ? n ^ o >> 21 : n;
        return n
    }
    function l() {
        for (var e, t = [], n = arguments.length, o = 0; n > o; o++)
            e = arguments[o], o > 0 && (e = 0 === e.indexOf("/") ? e.slice(1) : e), n - 1 > o && (e = "/" === e.slice(-1) ? e.slice(0, e.length - 1) : e), t.push(e);
        return t.join("/")
    }
    function p(o, i, r) {
        var a, c;
        try {
            a = "_clickiv4_" + +new Date + u(), c = e[a] = new Image, c.onload = c.onerror = function() {
                try {
                    i(), c.onload = c.onerror = e[a] = n
                } catch (t) {
                }
            }, c.src = o
        } catch (d) {
            try {
                c = t.createElement("img"), c.onload = c.onerror = function() {
                    try {
                        i(), c.onload = c.onerror = e[a] = n
                    } catch (t) {
                    }
                }, c.src = o
            } catch (l) {
                r || s("createImage", "error message is: ", d.message)
            }
        }
    }
    function g(e, n, o, i) {
        if (e) {
            var r = t.createElement("script");
            r.type = "text/javascript", r.async = !0, r.src = e, r.id = n, o && (r.addEventListener ? r.onload = o : r.onreadystatechange = function() {
                r.readyState in{loaded: 1, complete: 1} && (r.onreadystatechange = null)
            }), i && (r.onerror = i);
            var a = t.getElementsByTagName("script")[0];
            a.parentNode.insertBefore(r, a)
        }
    }
    function h(e, t, n, o) {
        e.addEventListener ? e.addEventListener(t, n, !!o) : e.attachEvent && e.attachEvent("on" + t, n)
    }
    function f(e, t, n) {
        e.removeEventListener ? e.removeEventListener(t, n, !1) : e.detachEvent && e.detachEvent("on" + t, n)
    }
    function m(e) {
        var n = new Date, o = arguments, i = o.length;
        if (i > 1) {
            var r = o[2] || 0, a = o[3] || "/", c = o[4] || 0, s = o[5] || 0;
            return r && n.setTime(n.getTime() + 1e3 * r), t.cookie = e + "=" + escape(o[1]) + (r ? "; expires=" + n.toGMTString() : "") + ("; path=" + a) + (c && "none" != c ? "; domain=" + c : "") + (s ? "; secure" : ""), o[1]
        }
        var u = t.cookie.match("(?:^|;)\\s*" + e + "=([^;]*)");
        return u ? unescape(u[1]) : 0
    }
    function v() {
        var e = "" + t.location.hostname;
        return 0 === e.indexOf("www.") ? e.substring(4) : e
    }
    function y(e) {
        var n = t.referrer;
        if (/^https?:\/\//i.test(n)) {
            if (e)
                return n;
            var o = "//" + t.location.hostname, i = n.indexOf(o);
            if (5 === i || 6 === i) {
                var r = n.charAt(i + o.length);
                if ("/" === r || "?" === r || "" === r || ":" === r)
                    return
            }
            return n
        }
    }
    function w() {
        var t, n, o;
        if ((o = (o = e.navigator) ? o.plugins : null) && o.length)
            for (var i = 0; i < o.length && !n; i++) {
                var r = o[i];
                -1 < r.name.indexOf("Shockwave Flash") && (n = r.description)
            }
        if (!n)
            try {
                t = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"), n = t.GetVariable("$version")
            } catch (a) {
            }
        if (!n)
            try {
                t = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"), n = "WIN 6,0,21,0", t.AllowScriptAccess = "always", n = t.GetVariable("$version")
            } catch (c) {
            }
        if (!n)
            try {
                t = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"), n = t.GetVariable("$version")
            } catch (s) {
            }
        return n && (t = n.match(/[\d]+/g)) && 3 <= t.length && (n = t[0] + "." + t[1] + " r" + t[2]), n || void 0
    }
    function k(e, t) {
        return e.name = t
    }
    function b(e, t) {
        var n, o, i = 0, r = {};
        for (o = Math.min(e.length + 1, t.length); o > i; i++)
            if ("object" == typeof t[i])
                for (n in t[i])
                    t[i].hasOwnProperty(n) && (r[n] = t[i][n]);
            else
                e.length > i && (r[e[i]] = t[i]);
        return r
    }
    function _(e, t) {
        return 1 == t.length && null != t[0] && "object" == typeof t[0] ? t[0] : b(e, t)
    }
    function I() {
        return pt.userAgent.indexOf("Firefox") >= 0 && ![].reduce
    }
    function T(e, t) {
        return t = t || o, e.length <= 2036 ? C(e, t) : e.length <= 8192 && !I() ? S(e, t) || E(e, t) || x(e, t) : (s("send", "request param is to long ", e.length), !1)
    }
    function C(e, t) {
        t = t || o, p(l(xt, Ot) + "?" + e, t)
    }
    function E(t, n) {
        if (n = n || o, !e.XDomainRequest)
            return!1;
        var i = new e.XDomainRequest;
        return i.open("POST", l(xt, jt)), i.onerror = function() {
            n()
        }, i.onload = n, i.send(t), !0
    }
    function S(t, n) {
        if (n = n || o, !e.XMLHttpRequest)
            return!1;
        var i = new e.XMLHttpRequest;
        return"withCredentials"in i ? (i.open("POST", l(xt, jt), !0), i.setRequestHeader("Content-Type", "text/plain"), i.onreadystatechange = function() {
            4 == i.readyState && (n(), n = null)
        }, i.send(t), !0) : !1
    }
    function x(n, i) {
        var r, a, c, s, u = 0, d = !1;
        if (i = i || o, c = function() {
            a.src = "", a.parentNode && a.parentNode.removeChild(a)
        }, s = function() {
            if (!d)
                try {
                    if (u > 9 || a.contentWindow.location.host == t.location.host)
                        return d = !0, c(), f(e, "beforeunload", c), void i()
                } catch (n) {
                    u++, setTimeout(s, 200)
                }
        }, t.body) {
            n += "####==collect_path=" + l(xt, Nt) + "==####", n = encodeURIComponent(n);
            try {
                a = t.createElement('<iframe name="' + n + '"></iframe>')
            } catch (p) {
                a = t.createElement("iframe"), k(a, n)
            }
            a.height = "0", a.width = "0", a.style.display = "none", a.style.visibility = "hidden", r = l(xt, Pt) + "#", r += encodeURIComponent(t.location.protocol + "//" + t.location.host + "/favicon.ico"), h(e, "beforeunload", c), h(a, "load", s), t.body.appendChild(a), a.src = r
        } else {
            var g = arguments, m = arguments.callee;
            setTimeout(function() {
                m.apply(e, g)
            }, 100)
        }
    }
    function O() {
        this.keys = [], this.t1 = {}, this.t2 = {}
    }
    function j(e, t, n, o, i) {
        var r = this;
        k(r, e), r.protocolParameter = t, r.defaultValue = n, r.getter = o, r.setter = i
    }
    function N(e, t, n, o, i) {
        var r = new j(e, t, n, o, i);
        return At.set(r.name, r), r.name
    }
    function P(e, t) {
        Lt.push([new RegExp("^" + e + "$"), t])
    }
    function L(e, t, n) {
        return N(e, t, n, void 0, o)
    }
    function A(e, t, n, i) {
        return N(e, t, n, i, o)
    }
    function R(e) {
        var t = At.get(e);
        if (!t)
            for (var n = 0; n < Lt.length; n++) {
                var o = Lt[n], i = o[0].exec(e);
                i && (t = o[1](i), At.set(t.name, t))
            }
        return t
    }
    function M(e) {
        var t;
        return At.map(function(n, o) {
            o.protocolParameter == e && (t = n)
        }), t
    }
    function q(e, t) {
        var n = e.get(t);
        return void 0 == n ? "" : "" + n
    }
    function z(e, t) {
        var n = e.get(t);
        return void 0 == n ? 0 : 1 * n
    }
    function $() {
        function e(e, t) {
            return e && e.hasOwnProperty && e instanceof t
        }
        var t = this;
        return e(t, $) || (t = new $, t.init()), t
    }
    function V() {
        this.data = new O
    }
    function F() {
        this.stack = []
    }
    function G() {
        var e = t.location.protocol;
        if ("http:" != e && "https:" != e)
            throw s("checkProtocolTask", "current protocol is:", e), "abort"
    }
    function U(e) {
        return e.length > 1 && e.lastIndexOf("/") == e.length - 1 && (e = e.substr(0, e.length - 1)), 0 !== e.indexOf("/") && (e = "/" + e), e
    }
    function B(e) {
        return 0 === e.indexOf(".") ? e.substr(1) : e
    }
    function D(e) {
        if ("cookie" === q(e, Tn)) {
            var t = [], n = e.get(kn), o = U(e.get(_n)), i = B(e.get(bn)), r = e.get(In), a = q(e, zt), c = v().split(".");
            if ("auto" != i && (m(n, a, r, o, i), m(n) == a))
                return void(Rn = !0);
            if (4 == c.length && c[c.length - 1] > 0)
                t = ["none"];
            else {
                for (var s = c.length - 2; s >= 0; s--)
                    t.push(c.slice(s).join("."));
                t.push("none")
            }
            for (var u = 0; u < t.length; u++)
                if (i = t[u], m(n, a, r, o, i), m(n) == a)
                    return e.set(bn, i), void(Rn = !0);
            e.set(bn, "auto")
        }
    }
    function X(e) {
        "cookie" !== q(e, Tn) || Rn || (D(e), Rn) || e.data.set(zt, 0)
    }
    function H(e) {
        if (100 !== e.get(En) && d(q(e, zt)) % 1e4 >= 100 * z(e, En))
            throw s("samplerTask", "current sampleRate is: ", e.get(En)), "abort"
    }
    function Z(e) {
        var t = [];
        At.map(function(n, o) {
            if (o.protocolParameter) {
                var i = e.get(n);
                0 !== i && i != o.defaultValue && ("boolean" == typeof i && (i *= 1), t.push(o.protocolParameter + "=" + encodeURIComponent("" + i)))
            }
        }), t.push("z=" + u()), e.set(nn, t.join("&"), !0)
    }
    function K(e) {
        var t = q(e, nn), n = e.get(tn);
        switch (e.get(qt)) {
            case"image":
                C(t, n);
                break;
            case"cors":
                S(t, n) || E(t, n);
                break;
            case"iframe":
                x(t, n);
                break;
            default:
                T(t, n)
        }
        e.set(tn, o, !0)
    }
    function W() {
        for (var n = pt.appName + pt.version + pt.platform + pt.userAgent + (t.cookie || "") + (t.referrer || ""), o = n.length, i = e.history.length; i > 0; )
            n += i-- ^ o++;
        return[Math.round((new Date).getTime() / 1e3), u() ^ 2147483647 & d(n)].join("").substr(0, 18)
    }
    function J(e, t) {
        var n = e.get(kn), o = m(n);
        t || (t = o || W()), e.data.set(zt, t), D(e)
    }
    function Q(e) {
        var n = "CSS1Compat" === t.compatMode ? "documentElement" : "body";
        if (e.set("referrer", y(e.get(xn))), gt) {
            var o = gt.pathname || "";
            "/" != o.charAt(0) && (o = "/" + o), e.set(Kt, gt.protocol + "//" + gt.hostname + o + gt.search), lt && (e.set(Vt, lt.width + "*" + lt.height), e.set(Ut, lt.colorDepth + "-bit")), e.set(Ft, t[n].clientWidth + "*" + t[n].clientHeight), e.set(Xt, w()), e.set(Gt, t.characterSet || t.charset);
            var r = "", a = !1;
            try {
                a = pt && i(pt.javaEnabled) && pt.javaEnabled() || !1
            } catch (c) {
                s("collectClientInfo", "javaEnabled error", c.message)
            }
            try {
                r = (pt && (pt.language || pt.browserLanguage) || "").toLowerCase()
            } catch (u) {
                s("collectClientInfo", "language error", u.message)
            }
            e.set(Dt, a), e.set(Bt, r)
        }
    }
    function Y(t) {
        var n = e.performance || e.webkitPerformance, o = n && n.timing;
        if (!o)
            return!1;
        var i = o.navigationStart;
        return 0 === i ? !1 : (t[cn] = o.loadEventStart - i, t[un] = o.domainLookupEnd - o.domainLookupStart, t[pn] = o.connectEnd - o.connectStart, t[ln] = o.responseStart - o.requestStart, t[sn] = o.responseEnd - o.responseStart, t[dn] = o.fetchStart - i, t[gn] = o.domInteractive - i, t[hn] = o.domContentLoadedEventStart - i, !0)
    }
    function et(t) {
        if (e.top != e)
            return!1;
        var n = e.external, o = n && n.onloadT;
        return n && !n.isValidLoadTime && (o = void 0), o > 2147483648 && (o = void 0), o > 0 && n.setPageReadyTime(), void 0 == o ? !1 : (t[cn] = o, !0)
    }
    function tt(e, t) {
        var n = e[t];
        (isNaN(n) || 1 / 0 == n || 0 > n) && (e[t] = void 0)
    }
    function nt(t, n) {
        var o = Math.min(z(t, Sn), 100);
        if (d(q(t, zt)) % 100 < o) {
            var i = [];
            if (Y(i) || et(i)) {
                var r = i[cn];
                void 0 != r && isFinite(r) && !isNaN(r) && (r > 0 ? (tt(i, un), tt(i, pn), tt(i, ln), tt(i, sn), tt(i, dn), tt(i, gn), tt(i, hn), n(i)) : h(e, "load", function() {
                    nt(t, n)
                }, !1))
            }
        }
    }
    function ot(e) {
        e.timingIsSended || (e.timingIsSended = !0, nt(e.storage, function(t) {
            e.storage.set(Zt, !0, !0), e.send("timing", t)
        }))
    }
    function it(e) {
        function t(e, t) {
            setTimeout(function() {
                e.storage.set(Zt, !0, !0), e.send("pulse")
            }, 1e3 * t)
        }
        if (e.storage.get(Cn))
            for (var n = 0; n < St.length; n++)
                t(e, St[n])
    }
    function rt(e) {
        function t(e, t) {
            o.storage.data.set(e, t)
        }
        function n(e, n) {
            t(e, n), o.filters.add(e)
        }
        var o = this;
        o.storage = new V, o.filters = new F, t(wn, e[wn]), t(Mt, e[Mt]), t(kn, e[kn]), t(bn, e[bn] || v()), t(_n, e[_n]), t(In, e[In]), t(En, e[En]), t(qt, e[qt]), t(Sn, e[Sn]), t(Cn, e[Cn]), t(xn, e[xn]), t($t, e[$t]), n(On, G), n(jn, X), n(Nn, H), n(Pn, Z), n(Ln, K), J(o.storage, e[zt]), Q(o.storage), it(o)
    }
    function at(e, t) {
        var n = this;
        n.id = e, n.url = t, n.factory = null, n.instance = null, n.loading = !1, n.ready = !1, n.queue = [], n.prefix = "plugin_2015_", n.load()
    }
    function ct() {
        this.plugins = {}
    }
    function st(e) {
        return e.indexOf(".") + e.indexOf(":") > -2
    }
    function ut(e) {
        var t = this;
        if (i(e[0]))
            t.ready = e[0];
        else {
            var n = qn.exec(e[0]);
            if (null != n && 4 == n.length && (t.name = n[1] || vt, t.pluginId = n[2] || "", t.action = n[3], t.opts = ht.call(e, 1)), !t.action)
                throw s("Env", "no action"), "abort";
            if ("require" === t.action && (!a(e[1]) || "" === e[1]))
                throw s("Env", "unexpected require arg: ", e[1]), "abort";
            if ("provide" === t.action && (!a(e[1]) || "" === e[1]))
                throw s("Env", "unexpected provide arg: ", e[1]), "abort";
            if (st(t.pluginId) || st(t.action))
                throw s("Env", "pluginId or action has  keyword ."), "abort";
            if ("provide" === t.action && t.name != vt)
                throw s("Env", "provide not need trackerName"), "abort"
        }
    }
    function dt() {
        zn.append.apply(zn, [arguments])
    }
    var lt = e.screen, pt = e.navigator, gt = e.location, ht = Array.prototype.slice, ft = Object.prototype.toString, mt = "", vt = "t0", yt = "__clickidc", wt = 31536e4, kt = "dc", bt = "queue", _t = "ClickiTrackerName", It = "clickiLogStack2015", Tt = 3e3, Ct = gt.hash.indexOf("clicki/debug/") > -1 || !1, Et = 10, St = [5, 15, 30], xt = ("https:" == gt.protocol ? "https:" : "http:") + "//sm.gome.com.cn/", Ot = "collect/track_proxy", jt = "collect/track_ajax", Nt = "collect/track_ajax", Pt = "collect_iframe.html";
    O.prototype.set = function(e, t, n) {
        this.keys.push(e), n ? this.t2[":" + e] = t : this.t1[":" + e] = t
    }, O.prototype.get = function(e) {
        return this.t2.hasOwnProperty(":" + e) ? this.t2[":" + e] : this.t1[":" + e]
    }, O.prototype.map = function(e) {
        for (var t = 0; t < this.keys.length; t++) {
            var n = this.keys[t], o = this.get(n);
            o && e(n, o)
        }
    };
    var Lt = [], At = new O, Rt = $.prototype;
    Rt.init = function() {
        return this.data = [], this.dataLock = [], this.gestureCache = [], this.gestureBindLock = !1, this.binder = ["binderScroll", "binderKeydown", "binderResize", "binderMousedown", "binderMousemove", "binderSwipe", "binderTurn", "binderPinch"], this.bindEvents(), this.reset(), this
    }, Rt.bindEvents = function() {
        for (var e = 0; e < this.binder.length; e++)
            this.dataLock[e] = !1, this[this.binder[e]](e)
    }, Rt.onGesturesEventTrigger = function(e) {
        for (var t = this.gestureCache, n = e.touches ? e.touches.length : 1, o = n >= 2 ? "pinch" : "swipe", i = 0; i < t.length; i++)
            t[i] && t[i][0] === o && this.onEventTrigger(t[i][1])
    }, Rt.bindGesturesEvent = function(n, o) {
        this.gestureCache.push([n, o]);
        var i = "ontouchstart"in e;
        !this.gestureBindLock && i && t.addEventListener("touchmove", c(this.onGesturesEventTrigger, this), !1)
    }, Rt.onEventTrigger = function(e) {
        this.dataLock[e] || (this.dataLock[e] = !0, this.data[e] = 1)
    }, Rt.binderScroll = function(t) {
        h(e, "scroll", c(this.onEventTrigger, this, t))
    }, Rt.binderKeydown = function(e) {
        h(t, "keydown", c(this.onEventTrigger, this, e))
    }, Rt.binderResize = function(t) {
        h(e, "resize", c(this.onEventTrigger, this, t))
    }, Rt.binderMousedown = function(e) {
        h(t, "mousedown", c(this.onEventTrigger, this, e))
    }, Rt.binderMousemove = function(e) {
        h(t, "mousemove", c(this.onEventTrigger, this, e))
    }, Rt.binderSwipe = function(e) {
        this.bindGesturesEvent("swipe", e)
    }, Rt.binderTurn = function(t) {
        e.orientation && e.addEventListener("orientationchange", c(this.onEventTrigger, this, t), !1)
    }, Rt.binderPinch = function(e) {
        this.bindGesturesEvent("pinch", e)
    }, Rt.reset = function() {
        for (var e = 0; e < this.binder.length; e++)
            this.data[e] = 0
    }, Rt.get = function() {
        var e = this.data.join("-");
        return this.reset(), e
    }, N("protocolVersion", "v");
    var Mt = L("trackingId", "tid");
    N("anonymizeIp", "aip"), N("queueTime", "qt");
    var qt = N("forceSendMethod"), zt = L("clientId", "cid"), $t = N("userId", "uid");
    N("miaozhenId", "mzid"), N("sessionControl", "sc", ""), N("referrer", "dr"), N("googleCampaignName", "cn"), N("googleCampaignSource", "cs"), N("googleCampaignMedium", "cm"), N("googleCampaignKeyword", "ck"), N("googleCampaignContent", "cc"), N("miaozhenCampaignId", "mzc"), N("miaozhenCampaignId", "mzs"), N("miaozhenCampaignId", "mzk"), P("customAds([0-9]+)", function(e) {
        return new j(e[0], "ca" + e[1])
    });
    var Vt = N("screenResolution", "sr"), Ft = N("viewportSize", "vp"), Gt = N("encoding", "de"), Ut = N("screenColors", "sd"), Bt = N("language", "ul"), Dt = N("javaEnabled", "je"), Xt = N("flashVersion", "fl"), Ht = N("hitType", "t"), Zt = N("nonInteraction", "ni", void 0, function(e, t, n) {
        return void 0 == n ? !1 : n
    }), Kt = N("location", "dl", "");
    N("hostname", "dh");
    var Wt = N("page", "dp", "");
    N("title", "dt", function() {
        return t.title || void 0
    }), N("appName", "an"), N("appId", "aid", ""), N("appVersion", "av", ""), N("appInstallerId", "aiid", "");
    var Jt = N("eventCategory", "ec"), Qt = N("eventAction", "ea"), Yt = N("eventLabel", "el"), en = N("eventValue", "ev");
    N("customActionId", "caid"), P("customActionLabel([0-9]+)", function(e) {
        return new j(e[0], "cal" + e[1])
    }), P("customActionValue([0-9]+)", function(e) {
        return new j(e[0], "cav" + e[1])
    }), P("dimension([0-9]+)", function(e) {
        return new j(e[0], "cd" + e[1])
    }), P("metric([0-9]+)", function(e) {
        return new j(e[0], "cm" + e[1])
    }), A("userBehavior", "ub", void 0, c("get", $()));
    var tn = N("hitCallback"), nn = N("hitPayload"), on = N("socialNetwork", "sn"), rn = N("socialAction", "sa"), an = N("socialTarget", "st"), cn = N("l1", "plt"), sn = N("l2", "pdt"), un = N("l3", "dns"), dn = N("l4", "rrt"), ln = N("l5", "srt"), pn = N("l6", "tcp"), gn = N("l7", "dit"), hn = N("l8", "clt"), fn = N("timingCategory", "utc"), mn = N("timingVar", "utv"), vn = N("timingLabel", "utl"), yn = N("timingValue", "utt"), wn = L("name"), kn = L("cookieName", void 0, yt), bn = L("cookieDomain"), _n = L("cookiePath", void 0, "/"), In = L("cookieExpires", void 0, wt), Tn = L("storage", void 0, "cookie"), Cn = L("sendPulse", void 0, !0), En = L("sampleRate", "sf", 100), Sn = L("siteSpeedSampleRate", void 0, Et), xn = L("alwaysSendReferrer", void 0, !1), On = N("checkProtocolTask"), jn = N("checkStorageTask"), Nn = N("samplerTask"), Pn = N("buildHitTask"), Ln = N("sendHitTask"), An = !1;
    N("forceSSL", void 0, void 0, function() {
        return An
    }, function(e, t, n) {
        An = !!n
    }), P("\\&(.*)", function(e) {
        var t = new j(e[0], e[1]), n = M(e[0].substring(1));
        return n && (t.getter = function(e) {
            return e.get(n)
        }, t.setter = function(e, t, n, o) {
            e.set(t, n, o)
        }, t.protocolParameter = void 0), t
    }), V.prototype.clearTemp = function() {
        this.data.t2 = {}
    }, V.prototype.get = function(e) {
        var t = R(e), n = this.data.get(e);
        return t && void 0 == n && (n = i(t.defaultValue) ? t.defaultValue() : t.defaultValue), t && i(t.getter) ? t.getter(this, e, n) : n
    }, V.prototype.set = function(e, t, n) {
        if (e)
            if ("object" == typeof e)
                for (var o in e)
                    e.hasOwnProperty(o) && arguments.callee.call(this, o, e[o], n);
            else {
                var r = R(e);
                r && i(r.setter) ? r.setter(this, e, t, n) : this.data.set(e, t, n)
            }
    }, F.prototype.add = function(e) {
        this.stack.push(e)
    }, F.prototype.run = function(t) {
        try {
            for (var n = 0; n < this.stack.length; n++) {
                var r = t.get(this.stack[n]);
                i(r) && r.call(e, t)
            }
        } catch (a) {
        }
        var c = t.get(tn);
        c != o && (t.set(tn, o, !0), setTimeout(c, 10))
    };
    var Rn = !1;
    rt.prototype.get = function(e) {
        return this.storage.get(e)
    }, rt.prototype.set = function(e, t) {
        return this.storage.set(e, t), this
    };
    var Mn = {pageview: [Wt], event: [Jt, Qt, Yt, en], social: [on, rn, an], timing: [fn, mn, vn, yn]};
    rt.prototype.send = function() {
        var e, t;
        arguments.length > 0 && (a(arguments[0]) ? (e = arguments[0], t = ht.call(arguments, 1)) : (e = arguments[0] && arguments[0][Ht], t = ht.call(arguments))), e && (t = _(Mn[e] || [], t), t[Ht] = e, this.storage.set(t, void 0, !0), this.filters.run(this.storage), "pageview" === e && ot(this), this.storage.clearTemp())
    }, at.prototype.load = function() {
        var e = this;
        e.loading = !0, g(e.url, e.prefix + e.id)
    }, at.prototype.provide = function(e, t) {
        var n;
        this.factory = e, this.ready = !0, this.loading = !1;
        try {
            this.instance = new e(t)
        } catch (o) {
            this.instance = {}, s("plugin provide", "factory init error; plugin id is:", this.id, ";error message is:", o.message)
        }
        for (; n = this.queue.shift(); )
            this.use.apply(this, n)
    }, at.prototype.use = function(e, t) {
        var n = this.instance;
        if (this.ready)
            try {
                n[e].apply(n, t)
            } catch (o) {
                s("plugin use", "action is: ", e, "; plugin id is:", this.id, ";error message is:", o.message)
            }
        else
            this.queue.push(ht.call(arguments))
    }, ct.prototype.getAll = function() {
        return this.plugins
    }, ct.prototype.get = function(e) {
        return this.plugins[e]
    }, ct.prototype.set = function(e, t) {
        this.plugins[e] = t
    }, ct.prototype.use = function(e, t, n) {
        var o = this.get(e);
        o && o.use && o.use(t, n)
    }, ct.prototype.require = function(e, t) {
        this.get(e) || this.set(e, new at(e, t))
    }, ct.prototype.provide = function(e, t, n) {
        var o = this.get(e);
        o && o.provide && o.provide.apply(o, ht.call(arguments, 1))
    };
    var qn = /^(?:(\w+)\.)?(?:(\w+):)?(\w+)$/, zn = {};
    zn.envs = [], zn.pluginM = new ct, zn.process = function() {
        for (var e = [], t = 0; t < arguments.length; t++)
            try {
                e.push(new ut(arguments[t]))
            } catch (n) {
            }
        return e
    }, zn.run = function(t) {
        try {
            if (t.ready)
                t.ready.call(e, dt.getByName(vt));
            else {
                var n = dt.getByName(t.name);
                if (t.pluginId)
                    return this.pluginM.use(t.pluginId, t.action, t.opts);
                switch (t.action) {
                    case"create":
                        dt.create.apply(dt, t.opts);
                        break;
                    case"remove":
                        dt.remove.call(dt, t.name);
                        break;
                    case"require":
                        this.pluginM.require.apply(this.pluginM, t.opts);
                        break;
                    case"provide":
                        this.pluginM.provide.apply(this.pluginM, t.opts.concat([n]));
                        break;
                    default:
                        n[t.action].apply(n, t.opts)
                    }
            }
        } catch (o) {
            s("controller.run", o.message)
        }
    }, zn.append = function() {
        var e = this, t = e.process.apply(e, arguments);
        for (t = e.envs.concat(t), e.envs = []; t.length && (e.run(t.shift()), !(e.envs.length > 0)); )
            ;
        e.envs = e.envs.concat(t)
    };
    var $n = [], Vn = function(e, t, n) {
        var o, i;
        return a(e[t]) && (i = e[t], o = i ? i.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "") : ""), o || n
    }(e, _t, kt);
    dt.lock = $n, dt.cache = {}, dt.start = 0, dt.stack = [];
    var Fn = [Mt, bn, wn];
    dt.create = function() {
        var e = _(Fn, ht.call(arguments));
        e[wn] || (e[wn] = vt);
        var t = "" + e[wn];
        if (dt.cache[t])
            return dt.cache[t];
        var n = new rt(e);
        return dt.cache[t] = n, dt.stack.push(n), n
    }, dt.remove = function(e) {
        for (var t = 0; t < dt.stack.length; t++)
            if (dt.stack[t].get(wn) == e) {
                dt.stack.splice(t, 1), dt.cache[e] = null;
                break
            }
    }, dt.getAll = function() {
        return dt.stack.slice(0)
    }, dt.getByName = function(e) {
        return dt.cache[e]
    }, dt.init = function() {
        var t = e[Vn];
        if (!t || t.lock != $n) {
            Ct = !!t.debug, mt = t.debugSendUrl, dt.loaded = !0, dt.start = t && t.start, e[Vn] = dt;
            var n = t && t[bt];
            r(n) && zn.append.apply(zn, n)
        }
    }, dt.init()
}(window, document);
(function() {
    function e(e) {
        var t = new Date, n = arguments, o = n.length;
        if (o > 1) {
            var i = n[2] || 0, r = n[3] || "/", a = n[4] || 0, c = n[5] || 0;
            if (i)
                t.setTime(t.getTime() + i * 1e3);
            document.cookie = e + "=" + escape(n[1]) + (i ? "; expires=" + t.toGMTString() : "") + ("; path=" + r) + (a ? "; domain=" + a : "") + (c ? "; secure" : "");
            return n[1]
        } else {
            var s = document.cookie.match("(?:^|;)\\s*" + e + "=([^;]*)");
            return s ? unescape(s[1]) : 0
        }
    }
    var t = e("__clickidc"), n = e("__c_visitor"), o = document.domain.split("."), i = [];
    for (var r = o.length - 2; r >= 0; r--) {
        i.push(o.slice(r).join("."))
    }
    for (var r = 0; r < i.length; r++) {
        !n ? e("__c_visitor", t, 3600 * 24 * 365 * 10, "/", i[r]) : e("__c_visitor", n, 3600 * 24 * 365 * 10, "/", i[r]);
        if (e("__clickidc") == e("__c_visitor"))
            break
    }
})();